Amazon EFS를 사용해 봤습니다.
안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 Amazon EFS를 사용해 봤기 때문에 EFS를 생성하는 방법에 대해서 정리해 봤습니다.
보안 그룹 생성
먼저 EC2 인스턴스의 보안 그룹을 생성합니다.
EC2 인스턴스에서는 EFS에 관한 인바운드 규칙을 설정할 필요 없이, EC2 인스턴스로의 접속을 허용할 포트와 소스를 설정합니다.
※ 현재 블로그에서는 리눅스 환경의 EC2 인스턴스를 생성할 생각이므로 SSH에「내 IP」를 설정한 상태입니다.
이어서 EFS의 보안 그룹을 생성합니다.
EFS에서는 NFS 2049 포트를 사용하므로 NFS 인바운드 트래픽을 허용합니다.
이어서 소스는 조금 전 생성한 EC2 인스턴스의 보안 그룹을 설정합니다.
※ 아웃바운드 규칙의 경우 수정할 필요 없이 0.0.0.0으로 설정한 상태입니다.
EC2 인스턴스 생성
EC2 인스턴스의 태그를 입력합니다.
- Amazon Linux 2 Kernel 5.10 AMI 2.0.20230912.0 x86_64 HVM gp2
다음과 같은 AMI를 사용했습니다.
※ 구성하려는 환경에 맞게 적절한 AMI를 선택합니다.
인스턴스 타입과 키 페어를 설정합니다.
보안 그룹의 경우 조금 전 생성한 EC2 인스턴스의 보안 그룹을 선택합니다.
※ 이번에는 Public Subnet에 EC2 인스턴스를 생성했지만, Private Subnet에 EC2 인스턴스를 생성해도 상관없습니다.
마지막으로 스토리지의 경우 특별한 설정 없이, 디폴트 값으로 놓고 EC2 인스턴스를 생성합니다.
Amazon EFS 생성
EFS 콘솔 화면에서「파일 시스템 생성」을 클릭합니다.
EFS 이름을 입력하고, VPC를 선택합니다.
이어서「생성」을 클릭하여 EFS를 생성합니다.
※ 세부 설정을 원할 경우「사용자 지정」을 클릭해서 설정할 수 있습니다.
EFS가 생성된 것을 확인할 수 있으며, EFS에서는 스토리지 용량이 탄력적이기 때문에 별도로 용량을 설정할 필요가 없습니다.
※ 파일이 추가되고 제거됨에 따라 자동으로 증가하고 줄어듭니다.
네트워크 설정을 변경하기 위해「세부 정보 보기」를 클릭합니다.
네트워크 탭을 클릭해 보면, 자동으로 네트워크가 설정되어 있는 것을 확인할 수 있습니다.
※ EFS 생성시 사용자 지정으로 생성하면 네트워크를 별도로 설정할 수 있습니다.
「관리」를 클릭합니다.
기존에 설정되어 있던 네트워크 설정값들을 삭제하고 다시 재설정합니다.
- VPC를 선택합니다.
- 가용 영역을 선택합니다.
- 서브넷은 Private Subnet을 선택했습니다.
- EFS는 AWS 내부 네트워크를 이용하므로 인터넷 게이트웨이, NAT Gateway 상관없이 사용할 수 있습니다.
- 이전에 생성했던 EFS 보안 그룹을 선택합니다.
- 서브넷은 Private Subnet을 선택했습니다.
Amazon EFS 마운트
sudo yum install -y amazon-efs-utils
EFS를 마운트 하기 위해서는 amazon-efs-utils 패키지가 설치되어 있어야 합니다.
EC2 인스턴스에 접속한 다음, 상기 명령어로 amazon-efs-utils 패키지를 설치합니다.
sudo mkdir test-efs
이어서 마운트 할 디렉토리를 생성합니다.
sudo mount -t efs -o tls (efs id):/ (디렉토리 명)
그런 다음 EFS를 마운트합니다.
- sudo mount -t efs -o tls fs-081f73ff2681d1c23:/ test-efs
EFS ID와 디렉토리 명을 넣어서 마운트를 진행합니다.
cd test-efs sudo touch test-file.txt ls test-file.txt
마운트한 test-efs 폴더에서 test-file 이라는 텍스트 파일을 생성합니다.
cd test-efs ls
이어서 EC2 인스턴스를 재부팅한 다음, 다시 마운트한 디렉토리를 확인해 보면 생성한 텍스트 파일이 사라진 것을 확인할 수 있습니다.
sudo mount -t efs -o tls fs-081f73ff2681d1c23:/ test-efs cd test-efs ls test-file.txt
다시 마운트를 진행하고, 마운트한 디렉토리를 확인해 보면 test-file 텍스트 파일이 출력되는 것을 확인할 수 있습니다.
즉, 성공적으로 마운트가 되었으며, 해당 파일 시스템에 파일이 생성되었습니다.
본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 [email protected]로 보내주시면 감사하겠습니다.